"""
继承 和 多态

    Java中的继承是 单继承  多实现
    Python中的继承是 多继承
"""
#定义Person类 作为父类
class Person():

    def __init__(self,name,age):
        self.__name = name
        self.__age = age
    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,name):
        self.__name = name
    @property
    def age(self):
        return self.__age
    @age.setter
    def age(self,age):
        self.__age = age

    def eatFood(self):
        print('%s正在吃东西' % self.name)

    def watchMovie(self):
        if self.__age < 18:
            print("%s只能看《熊出没》" % self.__name)
        else:
            print('%s正在看Python100天基础大全' % self.__name)

class Student(Person):
    #父类的属性和方法，子类必然会继承,在初始化的时候只需要调用父类的__init__函数即可
    def __init__(self,name,age,grade):
        super().__init__(name,age)
        self.__grade = grade
    @property
    def grade(self):
        return self.__grade
    @grade.setter
    def grade(self,grade):
        self.__grade = grade
    def study(self,courseName): # 在子类的方法 直接使用 self.属性名 就可以调用父类的属性
        print('%s正在学习%s,年级：%s' %(self.name,courseName,self.__grade) )
        super().eatFood()

if __name__ == '__main__':
    stu = Student('王大锤',15,'初三')
    stu.study('物理')
    stu.eatFood()
    stu.watchMovie()